import React from "react";
import app from './http';
import renderer from './renderer';

const serve = require('koa-static')
const path = require('path')
// const Router = require('@koa/router')
// const router = new Router()

// router.all('/', ctx => {
//   ctx.body =  renderer(ctx)
// })

// // 调用router.routes()来组装匹配好的路由，返回一个合并好的中间件
// // 调用router.allowedMethods()获得一个中间件，当发送了不符合的请求时，会返回 `405 Method Not Allowed` 或 `501 Not Implemented`
// app.use(router.routes());
// app.use(router.allowedMethods({ 
//     // throw: true, // 抛出错误，代替设置响应头状态
//     // notImplemented: () => '不支持当前请求所需要的功能',
//     // methodNotAllowed: () => '不支持的请求方式'
// }));



// 因为koa的路由不好全匹配，就不用了
app.use(async (ctx, next)=>{
  ctx.body =  renderer(ctx)
  await next()
})


// 静态资源托管；需要放到路由后面。
app.use(serve(path.join(__dirname, '../client')))

// 错误处理
app.on('error', (err, ctx) => {
  console.error('server error:')
  console.error(err)

  ctx.response.body = err;

});